<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>运行时配置</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="apc.installation.html">安装</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="apc.resources.html">资源类型</a></div>
 <div class="up"><a href="apc.setup.html">安装／配置</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="apc.configuration" class="section">
 <h2 class="title">运行时配置</h2>
 <p class="simpara">
这些函数的行为受 <var class="filename">php.ini</var> 中的设置影响。
</p>
 <p class="para">
 尽管默认的 APC 设定对于大多数安装已经没问题，但专业人员应考虑调整以下参数。
 </p>
 <p class="para">
  APC有两个主要的配置选项。第一，多少内存将被分配给APC;第二，每次请求APC是否检查文件修改。两个ini选项分别控制这些设置 <em>apc.shm_size</em>
  和<em>apc.stat</em>.就这两项配置仔细阅读下面的章节。
 </p>
 <p class="para">
  一旦服务器运行起来了,  <em>apc.php</em> 脚本可以拷贝到一个可以通过浏览器访问到的Web目录中，通过浏览器访问这个脚本会得到APC工作状态的详细分析，如果在PHP中启用了GD扩展，它甚至会显示一些有趣的图表。当然，首要的事情是要确保真的缓存了文件。  如果APC运行了， <em>缓存完全统计
  </em> 数目 (在左上角)将显示缓存的命中率并且清除在最后 <em>apc.ttl</em> 秒内没有被访问的缓存。 这个数字使缓存的最小化的很好配置。如果缓存不断的被填充和清除，这将影响缓存的效果和脚本的性能。减少这个数字的最好方式就是给APC分配足够多的内存。除此之外, 可以通过 <em>apc.filters
  </em>缓存更少的脚本。
 </p>
 <p class="para">
  <table class="doctable table">
   <caption><strong>APC配置选项</strong></caption>
   
    <thead>
     <tr>
      <th>名字</th>
      <th>默认</th>
      <th>可修改范围</th>
      <th>更新日志</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><a href="apc.configuration.html#ini.apc.enabled" class="link">apc.enabled</a></td>
      <td>&quot;1&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>PHP_INI_SYSTEM in APC 2. PHP_INI_ALL in APC &lt;= 3.0.12.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.shm-segments" class="link">apc.shm_segments</a></td>
      <td>&quot;1&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.shm-size" class="link">apc.shm_size</a></td>
      <td>&quot;30&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.optimization" class="link">apc.optimization</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_ALL</td>
      <td>PHP_INI_SYSTEM in APC 2. Removed in APC 3.0.13.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.num-files-hint" class="link">apc.num_files_hint</a></td>
      <td>&quot;1000&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.user-entries-hint" class="link">apc.user_entries_hint</a></td>
      <td>&quot;4096&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.0.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.ttl" class="link">apc.ttl</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.0.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.user-ttl" class="link">apc.user_ttl</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.0.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.gc-ttl" class="link">apc.gc_ttl</a></td>
      <td>&quot;3600&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.cache-by-default" class="link">apc.cache_by_default</a></td>
      <td>&quot;1&quot;</td>
      <td>PHP_INI_ALL</td>
      <td>PHP_INI_SYSTEM in APC &lt;= 3.0.12. Available since APC 3.0.0.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.filters" class="link">apc.filters</a></td>
      <td>NULL</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.mmap-file-mask" class="link">apc.mmap_file_mask</a></td>
      <td>NULL</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.slam-defense" class="link">apc.slam_defense</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.0.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.file-update-protection" class="link">apc.file_update_protection</a></td>
      <td>&quot;2&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.6.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.enable-cli" class="link">apc.enable_cli</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.7.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.max-file-size" class="link">apc.max_file_size</a></td>
      <td>&quot;1M&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.7.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.use-request-time" class="link">apc.use_request_time</a></td>
      <td>&quot;1&quot;</td>
      <td>PHP_INI_ALL</td>
      <td>Available since APC 3.1.3.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.stat" class="link">apc.stat</a></td>
      <td>&quot;1&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.10.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.write-lock" class="link">apc.write_lock</a></td>
      <td>&quot;1&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.11.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.report-autofilter" class="link">apc.report_autofilter</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.11.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.include-once-override" class="link">apc.include_once_override</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.12.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.rfc1867" class="link">apc.rfc1867</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.13.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.rfc1867-prefix" class="link">apc.rfc1867_prefix</a></td>
      <td>&quot;upload_&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.rfc1867-name" class="link">apc.rfc1867_name</a></td>
      <td>&quot;APC_UPLOAD_PROGRESS&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.rfc1867-freq" class="link">apc.rfc1867_freq</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.rfc1867-ttl" class="link">apc.rfc1867_ttl</a></td>
      <td>&quot;3600&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.1.1.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.localcache" class="link">apc.localcache</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.14.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.localcache.size" class="link">apc.localcache.size</a></td>
      <td>&quot;512&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.14.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.coredump-unmap" class="link">apc.coredump_unmap</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.16.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.stat-ctime" class="link">apc.stat_ctime</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.0.13.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.preload-path" class="link">apc.preload_path</a></td>
      <td>NULL</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.1.1.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.file-md5" class="link">apc.file_md5</a></td>
      <td>&quot;0&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.1.1.</td>
     </tr>

     <tr>
      <td><a href="apc.configuration.html#ini.apc.canonicalize" class="link">apc.canonicalize</a></td>
      <td>&quot;1&quot;</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.1.1.</td>
     </tr>

     <tr>
      <td>apc.lazy_functions</td>
      <td>0</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.1.3.</td>
     </tr>

     <tr>
      <td>apc.lazy_classes</td>
      <td>0</td>
      <td>PHP_INI_SYSTEM</td>
      <td>Available since APC 3.1.3.</td>
     </tr>

    </tbody>
   
  </table>

  有关 PHP_INI_* 样式的更多详情与定义，见 <a href="configuration.changes.modes.html" class="xref">配置可被设定范围</a>。
 </p>
 
 <p class="para">这是配置指令的简短说明。</p>
 
 <p class="para">
  <dl>

   
    <dt id="ini.apc.enabled">
     <em><code class="parameter">apc.enabled</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>
    </dt>

    <dd>

     <p class="para">
      <em>apc.enabled</em> 可以设成 0 来禁用 APC.主要是用在当 APC 被静态编译入 PHP 时，因为没有其它方法来禁用了(编译为 DSO , 的时候，可以将<em>php.ini</em>中的<em>extension</em>
     行注释掉)。
     </p>
    </dd>

   
   
    <dt id="ini.apc.shm-segments">
     <em><code class="parameter">apc.shm_segments</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      编译器缓存要分配的共享内存块的数目。如果 APC 用光了共享内存但是已经将 <em>apc.shm_size</em> 
     设为了系统所能允许的最大值，可以尝试增大此值。 
     </p>
    </dd>

   
   
    <dt id="ini.apc.shm-size">
     <em><code class="parameter">apc.shm_size</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
     以 MB 为单位的每个共享内存块的大小。默认时，有些系统（包括大多数 BSD 变种）的共享内存块大小非常低。 
     </p>
    </dd>

   
   
    <dt id="ini.apc.optimization">
     <em><code class="parameter">apc.optimization</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
     优化级别。设为 0 则禁用优化器，更高的值则使用更主动的优化。期望非常有限的速度提升。尚在试验中。 
     </p>
    </dd>

   
   
    <dt id="ini.apc.num-files-hint">
     <em><code class="parameter">apc.num_files_hint</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
     Web 服务器上的被包含或被请求的不同源文件的数目的大概估计。如果不确定则设为 0 或去掉此项；此设定主要用在有数千个源文件的站点。 
     </p>
    </dd>

   
   
    <dt id="ini.apc.user-entries-hint">
     <em><code class="parameter">apc.user_entries_hint</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      与<a href="apc.configuration.html#ini.apc.num-files-hint" class="link">apc.num_files_hint</a>类似,
      根据唯一用户数来存储缓存变量。 如果不能确定则设置为0或或去掉此项。
     </p>
    </dd>

   
   
    <dt id="ini.apc.ttl">
     <em><code class="parameter">apc.ttl</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~86400
      设为 0 意味着缓冲区有可能被旧的缓存条目填满，从而导致无法缓存新条目。
     </p>
    </dd>

   
   
    <dt id="ini.apc.user-ttl">
     <em><code class="parameter">apc.user_ttl</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
       类似于apc.ttl，只是针对每个用户而言，建议值为7200~86400。
       设为 0 意味着缓冲区有可能被旧的缓存条目填满，从而导致无法缓存新条目。
       如果大于0，APC将尝试删除过期条目。

     </p>
    </dd>

   
   
    <dt id="ini.apc.gc-ttl">
     <em><code class="parameter">apc.gc_ttl</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      缓存条目在垃圾回收表中能够存在的秒数。此值提供了一个安全措施，即在服务器进程在执行缓存的源文件时，如果该文件被修改则旧版本将不会被回收，直到达到此 TTL 为止。设为零将禁用此特性。
     </p>
    </dd>

   
   
    <dt id="ini.apc.cache-by-default">
     <em><code class="parameter">apc.cache_by_default</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>
    </dt>

    <dd>

     <p class="para">
      默认为 on，但可以设为 off 并和加号开头的 <em>apc.filters</em> 一起用，则文件仅在匹配过滤器时被缓存。
     </p>
    </dd>

   
   
    <dt id="ini.apc.filters">
     <em><code class="parameter">apc.filters</code></em>
     <span class="type"><a href="language.types.string.html" class="type string">string</a></span>
    </dt>

    <dd>

     <p class="para">
      一个以逗号分隔的 POSIX 扩展正则表达式的列表。如果任一个模式匹配源文件名，则该文件不被缓存。注意用来匹配的文件名是传递给 include/require 的文件名，而不是绝对路径。如果正则表达式的第一个字符是<em>+</em> t则意味着任何匹配表达式的文件会被缓存，如果第一个字符是 <em>-</em> 则任何匹配项都不会被缓存。 <em>-</em>是默认值，可以省略掉。
     </p>
    </dd>

   
   
    <dt id="ini.apc.mmap-file-mask">
     <em><code class="parameter">apc.mmap_file_mask</code></em>
     <span class="type"><a href="language.types.string.html" class="type string">string</a></span>
    </dt>

    <dd>

     <p class="para">
      如果使用 <em>--enable-mmap</em>(默认启用)为APC编译了MMAP支持，
      这里的值就是传递给mmap模块的mktemp风格的文件掩码(建议值为&quot; <em>/tmp/apc.XXXXXX</em>&quot;)。
      该掩码用于决定内存映射区域是否要被file-backed或者shared memory backed。
      对于直接的file-backed内存映射，要设置成&quot;/tmp/apc.XXXXXX&quot;的样子(恰好6个X)。
      要使用POSIX风格的shm_open/mmap就需要设置成&quot;/apc.shm.XXXXXX&quot;的样子。
      你还可以设为&quot;/dev/zero&quot;来为匿名映射的内存使用内核的&quot;/dev/zero&quot;接口。
      不定义此指令则表示强制使用匿名映射。

     </p>
    </dd>

   
   
    <dt id="ini.apc.slam-defense">
     <em><code class="parameter">apc.slam_defense</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      在非常繁忙的服务器上，无论是启动服务还是修改文件，
      都可能由于多个进程企图同时缓存一个文件而导致竞争条件。
      这个选项用于设置进程在处理未被缓存的文件时跳过缓存步骤的百分率。
      比如设为<em>75</em>表示在遇到未被缓存的文件时有<em>75</em>%的概率不进行缓存，从而减少碰撞几率。
      反对使用该指令，鼓励设为 <em>0</em>来禁用这个特性。建议该用apc.write_lock指令。

     </p>
     <p class="para">
      Deprecated by <a href="apc.configuration.html#ini.apc.write-lock" class="link">apc.write_lock</a>.
     </p>
    </dd>

   
   
    <dt id="ini.apc.file-update-protection">
     <em><code class="parameter">apc.file_update_protection</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      当你在一个运行中的服务器上修改文件时，你应当执行原子操作。
      也就是先写进一个临时文件，然后将该文件重命名(<em>mv</em>)到最终的名字。
      文本编辑器以及 <strong class="command">cp</strong>, <strong class="command">tar</strong>  等程序却并不是这样操作的，从而导致有可能缓冲了残缺的文件。
      默认值 2 表示在访问文件时如果发现修改时间距离访问时间小于 2 秒则不做缓冲。
      那个不幸的访问者可能得到残缺的内容，但是这种坏影响却不会通过缓存扩大化。
      如果你能确保所有的更新操作都是原子操作，那么可以用 0 关闭此特性。
      如果你的系统由于大量的IO操作导致更新缓慢，你就需要增大此值。

     </p>
    </dd>

   
   
    <dt id="ini.apc.enable-cli">
     <em><code class="parameter">apc.enable_cli</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      是否为CLI版本启用APC功能，仅用于测试和调试目的才打开此选项。
      在正常情况下不是理想的创建、 填充和销毁 CLI 的每个请求上的 APC 缓存，但各种测试方案很有用，能够轻松地使 CLI 版本的 PHP APC
     </p>
    </dd>

   
   
    <dt id="ini.apc.max-file-size">
     <em><code class="parameter">apc.max_file_size</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      Prevent files larger than this value from getting cached.  Defaults to
      1M. 
     </p>
    </dd>

   
   
    <dt id="ini.apc.stat">
     <em><code class="parameter">apc.stat</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
 
     是否启用脚本更新检查。
     改变这个指令值要非常小心。
     默认值 On 表示APC在每次请求脚本时都检查脚本是否被更新，
     如果被更新则自动重新编译和缓存编译后的内容。但这样做对性能有不利影响。
     如果设为 Off 则表示不进行检查，从而使性能得到大幅提高。
     但是为了使更新的内容生效，你必须重启Web服务器(译者注：如果采用cgi/fcgi类似的，需重启cgi/fcgi进程)。
     生产服务器上脚本文件很少更改, 可以通过禁用本选项获得显著的性能提升。
     </p>
     <p class="para">
    这个指令对于include/require的文件同样有效。但是需要注意的是，
    如果你使用的是相对路径，APC就必须在每一次include/require时都进行检查以定位文件。
    而使用绝对路径则可以跳过检查，所以鼓励你使用绝对路径进行include/require操作。

     </p>
    </dd>

   
   
   
    <dt id="ini.apc.write-lock">
     <em><code class="parameter">apc.write_lock</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>
    </dt>

    <dd>

     <p class="para">
      在繁忙的服务器上，Web服务器第一次被启动，或者很多文件在同一时间被修改，APC可能会多次编译同一个文件，写锁保证只有一个进程将尝试编译并缓存未缓存的脚本。其他进程试图使用该脚本将不使用opcode缓存，而不是锁定和等待缓存生成。
     </p>
    </dd>

   
   
   
    <dt id="ini.apc.report-autofilter">
     <em><code class="parameter">apc.report_autofilter</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>
    </dt>

    <dd>

     <p class="para">
      是否记录所有由于early/late binding原因而自动未被缓存的脚本。
     </p>
    </dd>

   
   
   
    <dt id="ini.apc.include-once-override">
     <em><code class="parameter">apc.include_once_override</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>
    </dt>

    <dd>

     <p class="para">
      优化<span class="function"><a href="function.include-once.html" class="function">include_once</a></span>和<span class="function"><a href="function.require-once.html" class="function">require_once</a></span>函数以避免执行额外的系统调用。
     </p>
    </dd>

   
   
   
    <dt id="ini.apc.rfc1867">
     <em><code class="parameter">apc.rfc1867</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>
    </dt>

    <dd>

     <p class="para">
      RFC1867 File Upload Progress hook handler is only available if APC 
      was compiled against PHP 5.2.0 or later. When enabled, any file uploads
      which includes a field called <em>APC_UPLOAD_PROGRESS</em>
      before the file field in an upload form will cause APC to automatically
      create an upload_<em class="emphasis">key</em> user cache entry where
      <em class="emphasis">key</em> is the value of the
      <em>APC_UPLOAD_PROGRESS</em> form entry.
     </p>
     <p class="para">
      Note that the hidden field specified by
      <em>APC_UPLOAD_PROGRESS</em> must come before the file field,
      otherwise the upload progress will not work correctly.
     </p>
     <p class="para">
      Note that the file upload tracking is not threadsafe at this point, so
      new uploads that happen while a previous one is still going will disable
      the tracking for the previous.
     </p>
     <p class="para">
      <div class="example" id="example-378">
       <p><strong>Example #1 An apc.rfc1867 example</strong></p>
       <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">apc_fetch</span><span style="color: #007700">(</span><span style="color: #DD0000">"upload_</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #0000BB">APC_UPLOAD_PROGRESS</span><span style="color: #007700">]</span><span style="color: #DD0000">"</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
       </div>

       <div class="example-contents"><p>以上例程的输出类似于：</p></div>
       <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [total] =&gt; 1142543
    [current] =&gt; 1142543
    [rate] =&gt; 1828068.8
    [filename] =&gt; test
    [name] =&gt; file
    [temp_filename] =&gt; /tmp/php8F
    [cancel_upload] =&gt; 0
    [done] =&gt; 1
)
</pre></div>
       </div>
      </div>
     </p>
    </dd>

   
   
   
    <dt id="ini.apc.rfc1867-prefix">
     <em><code class="parameter">apc.rfc1867_prefix</code></em>
     <span class="type"><a href="language.types.string.html" class="type string">string</a></span>
    </dt>

    <dd>

     <p class="para">
      用于上传文件的缓冲项条目名称前缀
     </p>
    </dd>

   

   
    <dt id="ini.apc.rfc1867-name">
     <em><code class="parameter">apc.rfc1867_name</code></em>
     <span class="type"><a href="language.types.string.html" class="type string">string</a></span>
    </dt>

    <dd>

     <p class="para">
      需要由APC处理的上传文件的隐藏表单项名称
     </p>
    </dd>

   

   
    <dt id="ini.apc.rfc1867-freq">
     <em><code class="parameter">apc.rfc1867_freq</code></em>
     <span class="type"><a href="language.types.string.html" class="type string">string</a></span>
    </dt>

    <dd>

     <p class="para">
      用户上传文件缓存项的更新频率。
      取值可以是总文件大小的百分比，或者以
      <em>&quot;k&quot;</em>, <em>&quot;m&quot;</em>, or <em>&quot;g&quot;</em>
      kilobytes, megabytes, or gigabytes 结尾的绝对尺寸 (大小写不敏感).
       0 表示尽可能快的更新，不过这样可能会导致上传速度下降。
     </p>
    </dd>

   

   
    <dt id="ini.apc.rfc1867-ttl">
     <em><code class="parameter">apc.rfc1867_ttl</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type bool">bool</a></span>
    </dt>

    <dd>

     <p class="para">
      <acronym>TTL</acronym> for rfc1867 entries.
     </p>
    </dd>

   

   
    <dt id="ini.apc.localcache">
     <em><code class="parameter">apc.localcache</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>
    </dt>

    <dd>

     <p class="para">
      使用非锁定本地进程shadow-cache ，它可以减少了向缓冲区写入时锁之间的竞争。
     </p>
    </dd>

   

   
    <dt id="ini.apc.localcache.size">
     <em><code class="parameter">apc.localcache.size</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      The size of the local process shadow-cache, should be set to a
      sufficiently large value, approximately half of
      <a href="apc.configuration.html#ini.apc.num-files-hint" class="link">apc.num_files_hint</a>.
     </p>
    </dd>

   

   
    <dt id="ini.apc.coredump-unmap">
     <em><code class="parameter">apc.coredump_unmap</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>
    </dt>

    <dd>

     <p class="para">
          启用APC的信号句柄，例如SIGSEGV信号，当信号写入核心文件。当这些信号被接收，APC将试图取消映射的共享内存段，从核心文件中排除它。此设置可以提高系统的稳定性,当接受到致命的信号或者采用APC的大型共享内存段配置方式。
     </p>
     <div class="warning"><strong class="warning">Warning</strong>
      <p class="para">
       此功能是潜在的危险。如果发生致命错误取消映射一个共享内存段致命的信号句柄，
       可能会导致不可预知的结果。
      </p>
     </div>
     <blockquote class="note"><p><strong class="note">Note</strong>: 
      <p class="para">
       虽然有些内核可能会提供了便利，忽略各类共享内存时生成核心转储文件，这些实现可能也忽略了重要的共享内存段，比如 Apache scoreboard。
      </p>
     </p></blockquote>
    </dd>

   

   
    <dt id="ini.apc.stat-ctime">
     <em><code class="parameter">apc.stat_ctime</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      验证ctime(创建时间)可以避免SVN或者rsync带来的问题，确保自上次统计inode没有改变。APC通常只检查mtime(修改时间)。

     </p>
    </dd>

   

   
    <dt id="ini.apc.canonicalize">
     <em><code class="parameter">apc.canonicalize</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type bool">bool</a></span>
    </dt>

    <dd>

     <p class="para">
      如果设置为on，则在no-state 模式（不检查文件更新）时会将相对路径改为绝对路径。
     </p>
    </dd>

   

   
    <dt id="ini.apc.preload-path">
     <em><code class="parameter">apc.preload_path</code></em>
     <span class="type"><a href="language.types.string.html" class="type string">string</a></span>
    </dt>

    <dd>

     <p class="para">
     </p>
    </dd>

   

   
    <dt id="ini.apc.use-request-time">
     <em><code class="parameter">apc.use_request_time</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type bool">bool</a></span>
    </dt>

    <dd>

     <p class="para">
      Use the <acronym title="Server Application Programming Interface">SAPI</acronym> request start time for
      <acronym>TTL</acronym>.
     </p>
    </dd>

   

   
    <dt id="ini.apc.file-md5">
     <em><code class="parameter">apc.file_md5</code></em>
     <span class="type"><a href="language.types.boolean.html" class="type bool">bool</a></span>
    </dt>

    <dd>

     <p class="para">
      记录文件的md5值
     </p>
    </dd>

   

   
    <dt id="ini.apc.lazy-functions">
     <em><code class="parameter">apc.lazy_functions</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      启用函数延迟加载
     </p>
    </dd>

   

   
    <dt id="ini.apc.lazy-classes">
     <em><code class="parameter">apc.lazy_classes</code></em>
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>
    </dt>

    <dd>

     <p class="para">
      启用类延迟加载
     </p>
    </dd>

   
  </dl>

 </p>
</div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="apc.installation.html">安装</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="apc.resources.html">资源类型</a></div>
 <div class="up"><a href="apc.setup.html">安装／配置</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
